package com.sh.weblogspringboot.web.markdown;

import org.commonmark.node.Link;
import org.commonmark.node.Node;
import org.commonmark.renderer.html.AttributeProvider;

import java.util.Map;

/**
 * @author songHai
 * @Classname NofollowLinkAttributeProvider
 * @Description nofollow 是 HTML 中 <a> 标签的一个属性值，它的主要作用是告诉搜索引擎“不要追踪此链接”。当一个网页中的链接被设置为 nofollow 时，搜索引擎会忽略这个链接，即不会从这个链接获取权重或跟踪链接的内容。
 * @Date 2025/4/12 22:03
 */
public class NofollowLinkAttributeProvider implements AttributeProvider {
    /**
     * 网站域名（上线后需要改成自己的域名）
     */
    private final static String DOMAIN = "www.xxxxxxxxx.com";

    @Override
    public void setAttributes(Node node, String tagName, Map<String, String> attributes) {
        if (node instanceof Link) {
            Link linkNode = (Link) node;
            // 获取链接地址
            String href = linkNode.getDestination();
            // 如果链接不是自己域名，则添加 rel="nofollow" 属性
            if (!href.contains(DOMAIN)) {
                attributes.put("rel", "nofollow");
            }
        }
    }
}
